export interface EventAssetsVo extends BaseEntity {
  assetId?: number | null;
  assetName?: null | string;
  assetType?: AssetType;
  createTime?: null | string;
  modifyTime?: null | string;
  shareType?: ShareType;
  microAppId?: null | string;
}

export enum AssetType {
  App = 'APP',
  MiniPrograme = 'MINI_PROGRAME',
  QuickApp = 'QUICK_APP',
  TetrisExternal = 'TETRIS_EXTERNAL',
  ThirdExternal = 'THIRD_EXTERNAL'
}

export enum ShareType {
  MyCreations = 'MY_CREATIONS',
  Sharing = 'SHARING',
  ShateExpired = 'SHATE_EXPIRED'
}

export interface EventAssetsQuery extends PageQuery {
  /**
   * 账号id
   */
  accountId: number;
  /**
   * 广告主ID
   */
  advertiserId: number;
  /**
   * 资产id列表,list长度最大`100`
   */
  assetIds?: string[];
  /**
   * 资产类型，允许值：
   * THIRD_EXTERNAL 三方落地页
   * TETRIS_EXTERNAL 橙子落地页
   * APP 应用
   * QUICK_APP 快应用
   * MINI_PROGRAME 小程序
   * THIRD_EXTERNAL :THIRD_EXTERNAL
   * TETRIS_EXTERNAL :TETRIS_EXTERNAL
   * APP :APP
   * QUICK_APP :QUICK_APP
   * MINI_PROGRAME :MINI_PROGRAME
   */
  assetType?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}

export interface EventManagerConfigsVo {
  attributionConfiguration?: null | string;
  createTime?: null | string;
  debuggingStatus?: null | string;
  eventCnName?: null | string;
  eventId?: number | null;
  eventType?: null | string;
  properties?: null;
  trackTypes?: TrackType[] | null;
  [property: string]: any;
}

export interface EventManagerConfigsQuery {
  /**
   * 账号id
   */
  accountId: number;
  /**
   * 广告主ID
   */
  advertiserId: number;
  /**
   * 账户资产id
   */
  assetId?: number;
  /**
   * 创建时间排序方式，允许值：DESC 降序、ASC 升序。默认：ASC
   * DESC :DESC
   * ASC :ASC
   */
  sortType?: string;
}

export enum TrackType {
  ApplicationAPI = 'APPLICATION_API',
  ApplicationSDK = 'APPLICATION_SDK',
  Applog = 'APPLOG',
  EChat = 'E_CHAT',
  ExternalAPI = 'EXTERNAL_API',
  FlyFish = 'FLY_FISH',
  Jssdk = 'JSSDK',
  MiniProgrameAPI = 'MINI_PROGRAME_API',
  MiniProgrameSDK = 'MINI_PROGRAME_SDK',
  OfflineAPI = 'OFFLINE_API',
  OfflineCallback = 'OFFLINE_CALLBACK',
  QuickAppAPI = 'QUICK_APP_API',
  Tetris = 'TETRIS',
  TetrisFe = 'TETRIS_FE',
  Xpath = 'XPATH'
}

export interface DialogOption {
  visible: boolean;
  title: string;
}
export interface PageData<T, Q> {
  form: T;
  queryParams: Q;
  rules: any;
}
export interface ProductStoreForm {
  platformId?: number;
  accountId?: number;
  advertiserId?: number;
  name?: string;
  productIndustry?: number;
  assetType?: string;
  miniProgramAsset?: {
    instanceId?: number;
    miniProgramName?: string;
    miniProgramType?: string;
    miniProgramId?: string;
  };
  assetId?: string;
  eventId?: number|string;
  trackTypes?: TrackType[];
}
